﻿using HDS.IService.Log;
using HDS.Model;
using HDS.Model.Entity.Master;
using HDS.SupplierApi.Core;
using HDS.SupplierApi.Core.Entity;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

namespace HDS.SupplierApi.Miki
{
    public class SupplierHotelApi : ISupplierHotelApi
    {
        private readonly HttpClient _HttpClient;
        private readonly ILogger _ILogger;
        private readonly IApiLogService _IApiLogService;

        private SupplierApiConfig _ApiConfig;

        public SupplierHotelApi(HttpClient httpClient, ILogger ilogger, IApiLogService iapiLogService)
        {
            _HttpClient = httpClient;
            _ILogger = ilogger;
            _IApiLogService = iapiLogService;
        }

        public Task<ResultData<SupplierOrderInfo>> Cancel(string spplierOrderId, string orderId, Dictionary<string, string> extras, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<SupplierRate>> ConfirmRate(string supplierHotelId, DateTime checkinDate, DateTime checkoutDate, RoomGuest roomGuest, string ratePlanId, string trackId, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<SupplierRate>> ConfirmRate(string supplierHotelId, DateTime checkinDate, DateTime checkoutDate, RoomGuest roomGuest, string ratePlanId, string trackId, string orderId, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<SupplierOrderInfo>> GetOrder(string spplierOrderId, string orderId, Dictionary<string, string> extras, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public void LoadApiConfig(SupplierApiConfig config)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<SupplierOrderInfo>> Reservation(SupplierRate supplierRate, DateTime checkinDate, DateTime checkoutDate, RoomGuest roomGuest, string orderId, string guestRequest, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<List<SupplierRate>>> SearchRate(string[] supplierHotelIds, DateTime checkinDate, DateTime checkoutDate, RoomGuest roomGuest, string trackId, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }

        public Task<ResultData<List<SupplierRate>>> SearchRate(string supplierHotelId, DateTime checkinDate, DateTime checkoutDate, RoomGuest roomGuest, string trackId, CancellationToken cancelToken)
        {
            throw new NotImplementedException();
        }
    }
}
